home *** CD-ROM | disk | FTP | other *** search
/ C/C++ Users Group Library 1996 July / C-C++ Users Group Library July 1996.iso / vol_300 / 335_04 / devnote.dos < prev    next >
Text File  |  1990-12-02  |  5KB  |  135 lines

  1.  
  2. 1.    Disclaimer
  3.  
  4.     This software is in the public domain.  
  5.     Any prior copyright claims are relinquished.  
  6.  
  7.     This software is distributed with no warranty whatever.  
  8.     The author takes no responsibility for the consequences 
  9.     of its use.
  10.  
  11. 2.    Size
  12.  
  13.     You can compile the assemblers small model (64k + 64k).
  14.     Getting them any smaller would be a real trick.
  15.     If you run small model, the STRALLOCSZ and SYELPB macro
  16.     defines in frapsub.c should be reduced to get a finer
  17.     granularity in packing the symbol table into the available
  18.     memory.
  19.  
  20. 3.    Compilation 
  21.  
  22.     The C source files that comprise a cross assembler are
  23.     in 3 categories.
  24.         
  25.         Common code (doesn't need recompiling between different
  26.         "flavors")
  27.             frasmain.c
  28.             fraosub.c
  29.             frapsub.c
  30.  
  31.         "Flavor" specific files (generated by Yacc, compiled
  32.         for every "flavor"))
  33.             as*.c
  34.             as*.h
  35.  
  36.         Common code that depends on the fraytok.h file (compiled
  37.         for every "flavor")
  38.             fryylex.c
  39.  
  40. 4.    Fraytok.h
  41.  
  42.     The yacc program defines some data structures and assigns values 
  43.     to various #define Macros used in the lexical analyzer.  
  44.     The lexical analyzer (fryylex.c) file refers to these in the 
  45.     fraytok.h include file.  The {assembler name}.h file generated 
  46.     by yacc (or renamed in the makefile) for the different .y files 
  47.     will be different.  If you compile manually, insure that the correct 
  48.     {assembler name}.h file is copied to fraytok.h.
  49.  
  50. 5.    Configuration Macros
  51.  
  52.     DOSTEMP
  53.  
  54.     If neither the current directory or /usr/tmp is an acceptable
  55.     directory for the temporary intermediate data file, change the 
  56.     initialization in frasmain.c.
  57.  
  58.     NOGETOPT
  59.  
  60.     If you use the NOGETOPT to use the provided function, remember
  61.     to change the MAINDEPENDS makefile macro.
  62.  
  63.     NOSTRING, USEINDEX
  64.  
  65.     The version 7 system I used to test these for version 1 got sold
  66.     for scrap.  Should still work ;-)
  67.  
  68. 6.    Dos
  69.  
  70.     You'll have to rename the makefile.dos to makefile.
  71.  
  72.     If you don't have a MS-DOS (or whatever) Yacc equivalent, but do have 
  73.     access to a another computer with Yacc, you can run that step there 
  74.     and take the resulting .c and .h files to the (whatever) system.
  75.     (I have not inquired at AT&T as to the copyright status of the 
  76.     resulting code, although it is rumored that the output of Yacc
  77.     is public domain.  Do this at your own risk. [The Yacc program
  78.     itself is definitly NOT public domain]).
  79.  
  80.     The combination used (Turbo C and Bison) will report a half
  81.     a dozen (varies) shift-reduce conflicts from Bison, and 3 (usually) 
  82.     warnings from the C compiler for the parser.  No big deal.
  83.  
  84.     The Bison (the Free Software Foundation's Yacc clone) I used
  85.     was disk 285 from the C Users Group.  The version dated 
  86.     January 1989.  This is modified from the original, to
  87.     adapt it to MS-DOS compilers, conventions, and libraries.
  88.  
  89.     (The following paragraph was copied out of this release)
  90.  
  91.     The C Users' Group (CUG) collects, maintains and distributes
  92.     public domain C source code, publishes a magazine, The C Users' Journal
  93.     and serves as a resource for C users. Several vendors have named
  94.     CUG as the official users group for their implementation of C.
  95.     For membership and subscription information contact
  96.  
  97.     The C Users' Group
  98.     2601 Iowa
  99.     Lawrence, KS 66047
  100.     (913) 841-1631
  101.  
  102. 7.    Porting to non-ascii machines
  103.  
  104.     The fryylex.c file contains a translate table, chartrantab,
  105.     which classifies the input character set for the scanner's
  106.     state machine.  The reference to this table masks off the
  107.     input character with 0x7f limiting the table to 128 elements.  
  108.     So if you want a source file in EBCDIC or to have umlauts in 
  109.     your variable names, a new table, and a new mask are called for.
  110.  
  111.     Debug in the lexical analyzer is turned on with a nonzero
  112.     value in the DEBUG macro.
  113.  
  114.     Host machines that don't use two-complement negative numbers
  115.     will have to compensate in the fraosub.c outeval()
  116.     switch statement for cases IFC_EMU8, IFC_EMS7, IFC_EM16,
  117.     IFC_EMBR16.
  118.  
  119. 8.    History
  120.     
  121.     These used to be called the Framework cross assemblers, but
  122.     there's someone using the name for a database package or 
  123.     something like that.  Why Frankenstein?  Well, if you don't
  124.     like the way it acts, chop off it's head and sew a new one on.
  125.     (It was around Halloween).
  126.  
  127.     The .y files are generated from a more general machine
  128.     description by an automated script.  But this isn't
  129.     portable enough and is too disgusting to distribute.
  130.  
  131.  
  132.     Mark Zenier
  133.     6340 Atlas Pl. SW
  134.     Seattle, WA 98136
  135.